Some applications display an image or artwork to a user in a graphical user interface (GUI). Some GUIs include a scrolling view which allows a user to change the view of the artwork displayed from one portion to another portion or to zoom in on or zoom out off a portion of the artwork. Applications can update the portion of artwork rendered in a view in response to user actions which change the view of the artwork to be displayed.
In some implementations, artwork is displayed in a resource-constrained environment. For example, a portable device (e.g., a mobile telephone or a personal digital assistant (PDA)) may have less processing power or memory to render a piece of artwork than a personal computer. For a user viewing artwork on a resource-constrained device, the artwork can be too complex to be completely rendered in the small amount of time between user actions, such as scrolling or panning the view of the artwork. As an example, while a small portion of a subway map is being rendered on a portable device, the user may scroll the view, resulting in a new, unpainted region appearing in the view before the completion of the earlier rendering.
The rendering of artwork can be updated in several ways. An earlier partial rendering of artwork can be erased, by a user scrolling in a GUI window, for example, and a new view can be rendered from the beginning. However, if the new view includes a region of the prior view, the elements of the region which were already rendered in the prior view are typically redrawn. Additionally, this can lead to a noticeable and undesirable “flicker” when a common region disappears and then reappears with the new region partially or completely rendered. Alternatively, the earlier rendering can be completed before the new, unpainted region is rendered. This requires the user to wait longer before seeing anything in the new region which, presumably, is the region of greatest interest to the user, because the user's last action was to scroll the view to include the new region.